#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

// int main()
// {
//     printf("Before: pid is %d\n", getpid());
//     fork();
//     printf("After: pid is %d\n", getpid());
//     sleep(1);
//     return 0;
// }

// 创建单个进程
// int main()
// {
//     __pid_t id = fork();
//     if (id == 0)
//     {
//         // child
//         printf("I am child, pid: %d, ppid: %d\n", getpid(), getppid());
//         exit(0); // 子进程退出
//     }
//     else if (id > 0)
//     {
//         // father
//         printf("I am father, pid: %d, ppid: %d\n", getpid(), getppid());
//         sleep(1);
//     }
//     else
//         printf("crate child fail\n");

//     return 0;
// }


// 创建多个进程
void child_Func()
{
    int cnt = 5;
    while(cnt--)
    {
        printf("I am child, pid: %d, ppid: %d\n",getpid(),getppid());
        sleep(1);
    }
    return;
}
int main()
{
    int  cnt = 5;       // 表示要创建5个进程
    while(cnt--)
    {
        __pid_t id = fork();
        if(id == 0)
        {
            // child
            child_Func();
            exit(0);
        }
    }
    sleep(100);
    return 0;
}
